Go入门进阶实战专栏:其实学Go很简单。
感谢极客学院的邀请,我将在极客学院更新【Go入门进阶实战】专栏。
也会在公众号更新专栏内容,希望对你有帮助。
欢迎关注订阅。
关于我
感谢你的关注,我是中阳,一位拥有10年互联网研发和管理经验的技术老鸟。曾作为大厂的Golang高级工程师,我凭借编程技能在北京安家立业。目前,我正作为技术合伙人投身于创业的浪潮之中。
除了在技术领域的深耕,我在自媒体平台上拥有超过10万的读者群体。致力于分享技术博客、开源项目,并且专注于提供就业辅导和职场晋升的指导。希望通过我的专栏,与你一起探索技术的世界,不断提升个人竞争力,共同成长。
从业经历
在2014年,我踏入互联网行业,起初从事客户端开发,使用Java开发Android应用。到了2016年底,随着公司业务转型及个人技术追求,我开始涉足服务端开发,运用Java、PHP、Python等多种编程语言,并在此过程中积累了丰富的系统架构设计和管理经验。
至2019年底,我晋升为公司技术总监。凭借对技术趋势的敏锐洞察,我预见到PHP的竞争力可能减弱,而Go语言有望占据更多市场份额,甚至可能蚕食PHP和Java的市场。因此,我带领技术团队在2019年底转向Go语言开发,并在此感谢前雇主对我们的信任与支持。
如果你所在的公司提供学习Go语言的机会,那无疑是一家值得信赖的公司。到了2023年初,我与前大厂同事共同创业,目前作为技术负责人参与开发和维护自研项目。同时,我持续撰写技术文章、参与开源项目,并提供就业指导及职场晋升答疑服务。
下面分享一下我的Go语言学习之旅,希望能对你有所启发,也希望你能找到自己的“小天才”。
起源
我的Go语言学习之旅与一位杰出同事(以下简称“小天才”)密切相关。小天才作为前端开发人员,于两年前加入我们的团队,彼此之间建立了深厚的相互尊重和赞赏。
小天才对我的信任促使他放弃了其他更高薪酬的工作机会;而我为了确保他能顺利加入,也积极与管理层沟通,争取更好的福利待遇。在众多技术同事中,我对小天才的赏识源于他不自我设限、主动承担额外任务的态度,这也正是我们能够获得更多机遇和可能性的原因。
环境
优秀的工作环境是成功的关键。在过去两年中,我带领的团队对公司的CMS、小程序、网站和活动专题等项目进行了全面重构。我们的后端部分采用了PHP的Laravel框架,以及一些Java旧项目,前端则采用了Vue和Nuxt框架。
我主要负责系统设计、核心后端开发,并与产品经理共同制定前后端方案。小天才在技术层面展现了前后端的全面能力,受他影响,其他几位同事也成长为全栈开发工程师。
契机
春节前的相对宽松工作量为我们提供了提升项目质量的机会。鉴于团队成员对性能的高追求,我组织了一次关于Go语言特性的讨论,特别是其对高并发的天然支持。
利用春节营销活动的需求,我推动团队以项目为导向学习Go,通过实战深入掌握这门语言。这种学习方式与我当年从客户端转向服务端开发的思路一致——项目驱动的学习效率高,尽管可能不够系统。我的专栏旨在分享敏捷开发经验,同时揭示我曾经的挫折,帮助读者避免走弯路。
你追我赶
在准备营销活动需求的同时,团队开始了Go语言的自学之旅。我经常与团队成员,尤其是小天才,在散步或会议中讨论学习中遇到的问题。小天才的进步迅速,这得益于他不设限的态度,这一点至关重要。
我们通过互相提问和解答,快速梳理知识结构,确保深刻理解所学内容。此外,掌握Go或任何编程语言的关键是:多实践编码。
落体项目
春节前,公司推出了一项复杂的营销活动,类似于支付宝的集五福。小天才迅速行动,在产品经理完成原型设计和我设计数据库结构后,迅速用Go编写了核心逻辑的demo。
我在此基础上继续开发了分配方案、不同概率集卡的拉新数量和活动成本推算等,这些数据基础让我们能够自信地编写业务逻辑。最终,小天才负责项目开发,我负责代码审查和充分测试。活动效果显著,为公司公众号带来了超过1万的新用户,管理层对此非常满意。
我们对项目进行了总结和复盘,在团队内部进行了代码审查,并制定了开发规范,以便团队内部复用。
进阶
受到春节活动成功的鼓舞,我们在元宵节推出了另一项类似活动。在春节活动的基础上,优化了代码,并整理了使用的技术点,包括但不限于:
Go 跨平台编译 Goroutine和Channel Gorm和Gin框架 Redis缓存 日志统计 登录、CORS和Session中间件 反射 读写锁 Docker 云效流水线部署 K8s容器编排
总结反思
从决定学习Go到实际应用,我们仅用了一天时间来决定,随后一周集中学习Go的语法特点,并大量编写demo。接着,我们用两周时间开发了一个为公众号拉新1万+的营销活动。学习Go并不难,特别是订阅了我的专栏后,学习过程将变得更加简单。
本专栏内容
划分了四个模块:准备篇、基础篇、进阶篇、实战篇
准备篇:主要讲解Go的优势和特点、开发环境搭建等准备工作。 基础篇:主要讲解Go语言的语法和基本概念,包括基本数据类型、数组和切片、map、channel、interface、指针、流程控制、函数、错误处理、panic、反射和结构体,每一篇文章都旨在构建读者对Go编程基础的深刻理解。基础篇的目标是确保读者能够熟练掌握Go的基础语法和编程范式,为后续的进阶学习打下坚实的基础。 进阶篇:将深入讨论Go语言的高级特性,内容包括协程、RPC、并发安全、扩展包、部署、ORM和测试。进阶篇的目的是通过探索Go的高级编程技巧和最佳实践,帮助读者提升编程技能,理解如何在实际项目中应用这些特性来解决复杂问题。 实战篇:主要讲解将理论与实践相结合,展示Go语言的应用,内容包括设计模式、框架、应用实践、规范&技巧和重要概念。实战篇旨在帮助读者将所学知识应用于构建高效、可维护的Go应用程序。
早日上岸!
好了,我的故事和专栏介绍先分享到这里,如果你最近在找工作,欢迎联系我:
我们搞了一个免费的面试真题共享群,互通有无,一起刷题进步。
没准能让你能刷到自己意向公司的最新面试题呢。
感兴趣的朋友们可以加我微信:wangzhongyang1993,备注:面试群。
点击下方文章,看看他们是怎么找到好工作的!
还有最新鲜的腾讯面经,不要错过哦!